package main

import "fmt"


// 定义全局变量
var (
	vname1 int
	vname2 int8
)

// 定义常量
const (
	jklove string = "IG NB"
)


func main() {
	fmt.Println("Hello, World!")
	fmt.Println("hello world")
	var b bool = true
	//这种不带声明格式的只能在函数内部使用
	d := true
	if d {
		fmt.Println("d is true")
	}
	if b {
		fmt.Println("b is true")
	}
	var number int = 1
	fmt.Println("number = ", number)
	vname1 = 456
	vname2 = 121
	str()
	strStk()
	pringtName()
	constString()
}

func str() {
	var i int
	var f float64
	var b bool
	var s string
	fmt.Printf("%v %v %v %q\n", i, f, b, s)
}

func strStk() {
	// 声明一个变量并初始化
	var a = "RUNOOB"
	fmt.Println(a)

	// 没有初始化就为零值
	var b int
	fmt.Println(b)

	// bool 零值为 false
	var c bool
	fmt.Println(c)
}

func pringtName() {
	fmt.Println(vname1)
	//&加上变量代表变量在内存中的位置
	fmt.Println(&vname1)
	fmt.Println(vname2)
	fmt.Println(jklove)
}


func constString() {
	const (
		a = iota   //0
		b          //1
		c          //2
		d = "ha"   //独立值，iota += 1
		e          //"ha"   iota += 1
		f = 100    //iota +=1
		g          //100  iota +=1
		h = iota   //7,恢复计数
		i          //8
	)
	fmt.Println(a,b,c,d,e,f,g,h,i)
}